package test;

import java.io.*;

public class Zuoye_3 {
    public static void main(String[] args) {
        File F=new File("D:\\Documents\\桌面\\研发笔试题目-V5.0.docx");
        boolean encrypt = true; // 是否加密
        // 读取文件
        try (InputStream in = new FileInputStream(F)) {
            // 创建输出文件流
            OutputStream out = new FileOutputStream(F + ".tmp");
            // 加密/解密
            int b;
            while ((b = in.read()) != -1) {
                if (encrypt) {
                    b = ~b; // 取反
                } else {
                    b = ~b; // 取反再取反，还原
                }
                out.write(b);
            }
            // 关闭输入输出流
            in.close();
            out.close();
        } catch (IOException ex) {
            System.err.println("Failed to read/write file: " + ex.getMessage());
            return;
        }
        // 删除原始文件，将临时文件重命名为原始文件
        if (F.delete() && new File(F + ".tmp").renameTo(new File(String.valueOf(F)))) {
            if (encrypt) {
                System.out.println("文件加密成功");
            } else {
                System.out.println("文件解密成功");
            }
        } else {
            System.err.println("文件覆盖失败");
        }
    }
}
